Below is a reference of available buttons for assignment (following standard XInput/Virtual-Key definitions, but slightly extended)
You absolutely *must* assign them with strings and not in any other way (e.g. decimal/hex numbers).

For each event you may assign only 1 button.

Inline comments are NOT allowed in the configuration file for string reads! So this includes all button assignments!

=== BASICS ===

Format is as follows:

[Events]
EVENT = BUTTON_NAME
...

[EventsKB]
EVENT = KEYBOARD_KEY_NAME
...

=== XINPUT ===

It should be pretty self-explanatory.
List of available buttons:

XINPUT_GAMEPAD_DPAD_UP       
XINPUT_GAMEPAD_DPAD_DOWN     
XINPUT_GAMEPAD_DPAD_LEFT     
XINPUT_GAMEPAD_DPAD_RIGHT    
XINPUT_GAMEPAD_START         
XINPUT_GAMEPAD_BACK          
XINPUT_GAMEPAD_LEFT_THUMB    
XINPUT_GAMEPAD_RIGHT_THUMB   
XINPUT_GAMEPAD_LEFT_SHOULDER (or XINPUT_GAMEPAD_LB)
XINPUT_GAMEPAD_RIGHT_SHOULDER (or XINPUT_GAMEPAD_RB)
XINPUT_GAMEPAD_A             
XINPUT_GAMEPAD_B             
XINPUT_GAMEPAD_X             
XINPUT_GAMEPAD_Y             
XINPUT_GAMEPAD_LT     
XINPUT_GAMEPAD_RT     
XINPUT_GAMEPAD_LS_X   
XINPUT_GAMEPAD_LS_Y  
XINPUT_GAMEPAD_RS_X  
XINPUT_GAMEPAD_RS_Y   
XINPUT_GAMEPAD_LS_UP
XINPUT_GAMEPAD_LS_DOWN	
XINPUT_GAMEPAD_LS_LEFT
XINPUT_GAMEPAD_LS_RIGHT
XINPUT_GAMEPAD_RS_UP
XINPUT_GAMEPAD_RS_DOWN
XINPUT_GAMEPAD_RS_LEFT
XINPUT_GAMEPAD_RS_RIGHT

=== KEYBOARD ===

Keyboard assignments should follow the Virtual-Key Code definitions (you can find them here: https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes)
Type their definition names in directly (e.g. if you want to assign the Return key, just use VK_RETURN directly in the config file)
For single letter assignments, type the letter in as-is (e.g. if you want to assign the 'G' key, just use G)

=== Event list ===

Below is a full list of available events in the game which you may assign. 
They trigger at various points in the game (whenever their handlers are generated), but not all of them actually work.
Reminder that some events are assigned only to the SECOND controller, such as debug camera actions.

NOTE: quitting with Q key is hardcoded due to the way it's coded in the game

NULL_ACTION
GAMEACTION_STEERLEFT
GAMEACTION_STEERRIGHT
GAMEACTION_TURNLEFT
GAMEACTION_TURNRIGHT
GAMEACTION_GAS
GAMEACTION_BRAKE
GAMEACTION_HANDBRAKE
GAMEACTION_GAMEBREAKER
GAMEACTION_SHIFTUP
GAMEACTION_SHIFTDOWN 
GAMEACTION_NOS 
GAMEACTION_RESET 
GAMEACTION_FORWARD 
GAMEACTION_BACK 
GAMEACTION_JUMP 
GAMEACTION_DEBUGHUMAN1 
GAMEACTION_DEBUGHUMAN2 
GAMEACTION_DEBUGHUMAN3 
GAMEACTION_DEBUGHUMAN4 
CAMERAACTION_CHANGE 
CAMERAACTION_DEBUG 
CAMERAACTION_ENABLE_ICE 
CAMERAACTION_LOOKBACK 
CAMERAACTION_PULLBACK 
FRONTENDACTION_UP 
FRONTENDACTION_DOWN 
FRONTENDACTION_LEFT 
FRONTENDACTION_RIGHT 

The following 4 actions are exclusive to gamepad input (they're not real action IDs):
FRONTENDACTION_UP_ALT
FRONTENDACTION_DOWN_ALT
FRONTENDACTION_LEFT_ALT
FRONTENDACTION_RIGHT_ALT

FRONTENDACTION_RUP 
FRONTENDACTION_RDOWN 
FRONTENDACTION_RLEFT 
FRONTENDACTION_RRIGHT 
FRONTENDACTION_ACCEPT 
FRONTENDACTION_CANCEL 
FRONTENDACTION_CANCEL_ALT 
FRONTENDACTION_START 
FRONTENDACTION_BUTTON0 
FRONTENDACTION_BUTTON1 
FRONTENDACTION_BUTTON2 
FRONTENDACTION_BUTTON3 
FRONTENDACTION_BUTTON4 
FRONTENDACTION_BUTTON5 
FRONTENDACTION_LTRIGGER 
FRONTENDACTION_RTRIGGER 
HUDACTION_PAUSEREQUEST 
HUDACTION_ENGAGE_EVENT 
HUDACTION_PAD_LEFT 
HUDACTION_PAD_DOWN 
HUDACTION_PAD_RIGHT 
HUDACTION_SKIPNIS 
HUDACTION_NEXTSONG 
VOIPACTION_PUSHTOTALK 
DEBUGACTION_MOVE_UP 
DEBUGACTION_MOVE_DOWN 
DEBUGACTION_MOVE_LEFT 
DEBUGACTION_MOVE_RIGHT 
DEBUGACTION_MOVE_FORWARD 
DEBUGACTION_MOVE_BACK 
DEBUGACTION_MOVE_D_LEFT 
DEBUGACTION_MOVE_D_RIGHT 
DEBUGACTION_MOVE_D_FORWARD 
DEBUGACTION_MOVE_D_BACK 
DEBUGACTION_LOOK_UP 
DEBUGACTION_LOOK_DOWN 
DEBUGACTION_LOOK_LEFT 
DEBUGACTION_LOOK_RIGHT 
DEBUGACTION_LOOK_D_UP 
DEBUGACTION_LOOK_D_DOWN 
DEBUGACTION_LOOK_D_LEFT 
DEBUGACTION_LOOK_D_RIGHT 
DEBUGACTION_TURBO 
DEBUGACTION_SUPER_TURBO 
DEBUGACTION_DROPCAR 
DEBUGACTION_TOGGLEAI 
DEBUGACTION_TOGGLESIMSTEP 
DEBUGACTION_SIMSTEP 
DEBUGACTION_SCREENSHOT 
DEBUGACTION_STOPRECORDPATH 
DEBUGACTION_TOGGLECARCOLOUR 
DEBUGACTION_TOGGLEDEMOCAMERAS 
ICEACTION_GRAB_LEFT 
ICEACTION_GRAB_RIGHT 
ICEACTION_LEFT 
ICEACTION_RIGHT 
ICEACTION_FAST_LEFT 
ICEACTION_FAST_RIGHT 
ICEACTION_UP 
ICEACTION_DOWN 
ICEACTION_HELP 
ICEACTION_UNDO 
ICEACTION_PLAY 
ICEACTION_HIDE 
ICEACTION_SCREENSHOT 
ICEACTION_SCREENSHOT_STREAM 
ICEACTION_INSERT 
ICEACTION_CUT 
ICEACTION_COPY 
ICEACTION_PASTE 
ICEACTION_SELECT 
ICEACTION_CANCEL
ICEACTION_ALT_1
ICEACTION_CLIP_IN
ICEACTION_CLIP_OUT
ICEACTION_SIMSPEED_INC
ICEACTION_SIMSPEED_DEC
ICEACTION_DUTCH_LEFT
ICEACTION_DUTCH_RIGHT
ICEACTION_ZOOM_IN
ICEACTION_ZOOM_OUT
ICEACTION_LETTERBOX_IN
ICEACTION_LETTERBOX_OUT
ICEACTION_BUBBLE_IN
ICEACTION_BUBBLE_OUT
ICEACTION_BUBBLE_UP
ICEACTION_BUBBLE_DOWN
ICEACTION_BUBBLE_TILT_UP
ICEACTION_BUBBLE_TILT_DOWN
ICEACTION_BUBBLE_SPIN_LEFT
ICEACTION_BUBBLE_SPIN_RIGHT
ICEACTION_BUBBLE_LEFT
ICEACTION_BUBBLE_RIGHT
ICEACTION_BUBBLE_BACK
ICEACTION_BUBBLE_FORTH
ICEACTION_SHAKE_MAG_DEC
ICEACTION_SHAKE_MAG_INC
ICEACTION_SHAKE_FRQ_DEC
ICEACTION_SHAKE_FRQ_INC
ICEACTION_SHUTTLE_LEFT
ICEACTION_SHUTTLE_RIGHT
ICEACTION_SHUTTLE_UP
ICEACTION_SHUTTLE_DOWN
ICEACTION_SHUTTLE_SPEED_DEC
ICEACTION_SHUTTLE_SPEED_INC
ACTION_EXITAPPLICATION
ACTION_PLUGGED 
ACTION_UNPLUGGED 
ACTION_FLUSH 
